package com.tangbao.photo.service.impl;

import com.tangbao.photo.mapper.PhotoMapper;
import com.tangbao.photo.model.LunboImg;
import com.tangbao.photo.model.Photo;
import com.tangbao.photo.model.PhotoType;
import com.tangbao.photo.service.PhotoService;
import com.tangbao.util.Page;
import com.tangbao.util.ResEntity;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import javax.ws.rs.core.Response;
import java.util.List;

/**
 * 创建人： tangbao
 * 创建时间： 2018/12/6 12:32
 * 功能：
 */
@Service
public class PhotoServiceImpl implements PhotoService {
    @Resource
    PhotoMapper photoMapper;
    /**
     * 描述：获取图片列表
     *
     * @param typeId      图片类型
     * @param isLunbo     是否是轮播图（0：不是轮播图，1：是轮播图）
     * @param currentPage 开始页
     * @param pageSize    页大小
     *                    返回值：javax.ws.rs.core.Response
     * @throw 创建人：tangbao
     * 创建时间：
     * 修改人和信息：
     */
    @Override
    public Response getPhotolist(Integer typeId, Integer isLunbo, Integer currentPage, Integer pageSize) {
        //如果isLunbo为空则表示不是轮播图赋值为0
        if(null==isLunbo) {
            isLunbo=0;
        }

        List<Photo> photolist = null;
        Page page = null;
        if(null==currentPage) {
            page = new Page();
            photolist = photoMapper.getPhotolist(null,null,typeId,isLunbo);
        }else {
            page = new Page(pageSize,currentPage);
            photolist = photoMapper.getPhotolist(page.getStart(),pageSize,typeId,isLunbo);
        }
        Integer totalCount = photoMapper.getPhotolistNum();
        page.setList(photolist);
        page.setTotalCount(totalCount);

        ResEntity entity = ResEntity.okEntity().put("page", page);
        return Response.ok(entity).build();
    }

    /**
     * 描述：获取图片类型列表
     * 返回值：javax.ws.rs.core.Response
     * @throw 创建人：tangbao
     * 创建时间：
     * 修改人和信息：
     */
    @Override
    public Response getPhotoType() {
        List<PhotoType> photoType = photoMapper.getPhotoType();

        ResEntity entity = ResEntity.okEntity().put("photoType", photoType);
        return Response.ok(entity).build();
    }

    /**
     * 描述：根据图片id查询图片详情
     * @param imageId 图片id
     * 返回值：javax.ws.rs.core.Response
     * @throw
     * 创建人：tangbao
     * 创建时间：2018/12/13 17:48
     * 修改人和信息：
     */
    @Override
    public Response getPhoto(Integer imageId) {
        Photo photo = photoMapper.getPhoto(imageId);

        ResEntity entity = ResEntity.okEntity().put("photo", photo);
        return Response.ok(entity).build();
    }

    /**
     * 描述：获取轮播图列表
     * @param imageId 图片id
     * 返回值：javax.ws.rs.core.Response
     * @throw 创建人：tangbao
     * 创建时间：2018/12/13 17:58
     * 修改人和信息：
     */
    @Override
    public Response getLunboList(Integer imageId) {
        List<LunboImg> lunboImgs = photoMapper.getLunboImgList(imageId);

        ResEntity entity = ResEntity.okEntity().put("lunboImgs", lunboImgs);
        return Response.ok(entity).build();
    }

    /**
     * 描述：图片详情点击次数+1
     * @param imageId 图片id
     * 返回值：javax.ws.rs.core.Response
     * @throw 创建人：tangbao
     * 创建时间：2018/12/17 2:27
     * 修改人和信息：
     */
    @Override
    public Response updatePhotoClick(Integer imageId) {
        int size = photoMapper.updatePhotoClick(imageId);
        ResEntity entity = ResEntity.okEntity().put("size", size);
        return Response.ok(entity).build();
    }


}
